home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SGI Freeware 1998 June
/
SGI Freeware 1998 June.iso
/
dist
/
fw_ATxgopher.idb
/
usr
/
freeware
/
src
/
xgopher.1.3
/
sc_tn3270.c.z
/
sc_tn3270.c
Wrap
C/C++ Source or Header
|
1998-01-21
|
3KB
|
118 lines
/* sc_tn3270.c
gopher item subclass procedures for tn3270 sessions */
/*---------------------------------------------------------------*/
/* Xgopher version 1.3 08 April 1993 */
/* version 1.2 20 November 1992 */
/* version 1.1 20 April 1992 */
/* version 1.0 04 March 1992 */
/* X window system client for the University of Minnesota */
/* Internet Gopher System. */
/* Allan Tuchman, University of Illinois at Urbana-Champaign */
/* Computing and Communications Services Office */
/* Copyright 1992, 1993 by */
/* the Board of Trustees of the University of Illinois */
/* Permission is granted to freely copy and redistribute this */
/* software with the copyright notice intact. */
/*---------------------------------------------------------------*/
#include "conf.h"
#include "globals.h"
#include "gopher.h"
#include "appres.h"
#include "util.h"
#include "status.h"
#include "subst.h"
#include "sc_tn3270.h"
#include "sc_tn3270P.h"
/* giveTn3270Session
provide an Xterm session running a tn3270 (or x3270) command */
static BOOLEAN
giveTn3270Session(gi)
gopherItemP gi;
{
char *tn3270Cmd;
char message[MESSAGE_STRING_LEN];
if ((int) strlen ( appResources->tn3270Command ) <= 0 ) {
showError("Cannot execute the tn3270 command");
return FALSE;
}
if (gi->host == NULL || (int) strlen ( gi->host ) <= 0 ) {
showError("There is no host to telnet (tn3270) to.");
return FALSE;
}
tn3270Cmd = editCommand(gi, appResources->tn3270Command,
(char *) NULL, (char *) NULL);
showStatus("starting a tn3270 session window", STAT_TEMP_MESSAGE,
gi->host, gi->port);
system(tn3270Cmd);
free (tn3270Cmd);
if ((int) strlen(vStringValue(&(gi->selector))) > 0) {
sprintf(message,
"If a login name is required, try:\n\'%s\'",
vStringValue(&(gi->selector)));
showInfo(message);
}
return TRUE;
}
/* GITn3270_init
initialize tn3270 session class - prefix string */
void
GITn3270_init()
{
GU_makePrefix(prefixTn3270, appResources->prefixTn3270);
GU_registerNewType(A_TN3270, &tn3270Subclass);
return;
}
/* GITn3270_access
check the accessability of a tn3270 session item */
BOOLEAN
GITn3270_access(gi)
gopherItemP gi;
{
BOOLEAN result;
if (appResources->allowTn3270) {
result = TRUE;
}else {
result = FALSE;
}
return result;
}
/* GITn3270_process
process a tn3270 session selection. */
BOOLEAN
GITn3270_process(gi)
gopherItemP gi;
{
BOOLEAN result;
result = giveTn3270Session(gi);
return result;
}